package com.bestcem.xm.ticket.enums;

import lombok.Getter;

/**
 * 角色类型枚举
 *
 * @author ympan <yuming.pan@idiaoyan.com>
 * @version v1.0
 * @date 2021/8/27 14:17
 */
@Getter
public enum RoleTypeEnum {
    /*
     * 通用角色
     */
    ROLE_ROLETYPE_COMMON("ROLE_ROLETYPE_COMMON", 0),

    /*
     * 层级角色
     */
    ROLE_ROLETYPE_LEVEL("ROLE_ROLETYPE_LEVEL", 1),

    /*
     * 组角色
     */
    ROLE_ROLETYPE_GROUP("ROLE_ROLETYPE_GROUP", 2),

    /*
     * 超级管理员角色
     */
    ROLE_ROLETYPE_SUPER("ROLE_ROLETYPE_SUPER", 3),

    /*
     * 系统内置角色
     */
    ROLE_ROLETYPE_SYSTEM("ROLE_ROLETYPE_SYSTEM", 4);

    private final String name;

    private final Integer index;

    RoleTypeEnum(String name, Integer index) {
        this.name = name;
        this.index = index;
    }

    /**
     * 根据 index 获取枚举实体
     * 找不到则返回 null
     *
     * @param index 角色类型index
     * @return 角色类型枚举
     * @author <yuming.pan@idiaoyan.com>
     * @date 14:18 2021/8/27
     */
    public static RoleTypeEnum getByIndex(Integer index) {
        for (RoleTypeEnum value : values()) {
            if (value.getIndex().equals(index)) {
                return value;
            }
        }
        return null;
    }
}
